/**
 * 对tbody的行序号进行重新排列
 * @param tbody 
 * 此方法是对一个tbody的中的所有tr的第一列进行重排序的操作
 */ 
function sortTable( tbody ){
	var tbodyChilds = _getChilds( tbody );
	for( var i = 0;i<tbodyChilds.length;i++ ){
		// 取出每一行的第一个单元格，然后修改他的内容
		$( _getFirstChild( tbodyChilds[i] ) ).text( (i+1) );
	}
}

/**
 * 关于添加的操作
 * @param classNames 每一个td的className，此td的信息为一个Array
 * @param tbodyId 要添加到那个tbody
 * @param editCall 修改的操作的方法
 */
function addTableTr( classNames ,validates , tbodyId  , editCell , beforeCall){
	// 如果第一次添加时还有无记录行，那就删除无记录行
	var no_record = document.getElementById('no_record');
	if( null != no_record ){
		// 删除此信息
		$( no_record ).remove();
	}
	var tr = document.createElement('TR');
	tr.onclick = function(){
		selectTr(this);
	}
	for( var i=0; i<classNames.length ;i++ ){
		var td = document.createElement('TD');
		if(classNames[i] == 'selectType'){
			var select = document.createElement("select");
			var	option = document.createElement("option");
		    var jsonMsgObj=eval(beforeCall);
		    for(j=0;j<jsonMsgObj.length;j++)
		    {
		    		var option = document.createElement("option");
		    		option.value = jsonMsgObj[j].id;
		    		option.text = jsonMsgObj[j].name;
		    		select.add(option);
		    }
			td.appendChild(select);
		}
		td.className = classNames[i];
		td.validate = validates[i];
		tr.appendChild( td );
	}
	// 把此最新的行添加到最tbody
	var tbody = document.getElementById( tbodyId );
	// 把此行添加到数据表中
	// 因为要把它添加到最上面一行，所以要取出tbody的第一个子节点
	if( null == _getFirstChild( tbody ) ){
		// 添加表
		tbody.appendChild( tr );
	}else{
		// 添加到第一个
		tbody.insertBefore( tr , _getFirstChild( tbody ) );
	}
	// 对tbody的行序号进行重新排列
	sortTable( tbody );
	// 调用可修改的表格
	editCell();
}

/**
 * 关于删除操作
 * @param _url 此次删除要调用后台那个方法
 * @param _back 回调方法
 */
function deleteTableTr( _url , _back){
	// 因为每一行都配置了onclick的selectTr的方法，所以可以在 aeroui.grid.selectTr变量中找到tr把它删除
	if( null != aeroui.grid.selectTr ){
		// 取出此对象的id
		var id = $( aeroui.grid.selectTr ).attr( 'id' );
		// 如果此tr的id为‘’就返回
		if( id=='' ){
			realyDelete();
			return;
		}
		// 向后台发送数据进行删除
		$.ajax( {
			url : encodeURI( _url ),
			type : 'POST',
			success : function( result ){
				JsManageInfoHandleException( result , function(msg , codeId , isOk){
					realyDelete();
					_back();
				} );
			}
		} );
	}
}
/**
 * 删除行
 */
function realyDelete(){
	// 取出此行的父
	var tbody = _getParent( aeroui.grid.selectTr );
	// 删除成功之后就删除此行
	$( aeroui.grid.selectTr ).remove();
	// 把此记录的变量设置为null
	aeroui.grid.selectTr = null;
	// 进行序号重排
	sortTable( tbody );
}
